package com.projectbox.service;

import java.util.Date;
import java.util.List;

import com.projectbox.model.Project;
import com.projectbox.model.Resource;

public interface SearchService {
	
	/**
	 * Returns a list of projects that create by the user with the given id where
	 * it also contains the given keywords and the last update is between the start
	 * date and the end date.
	 * 
	 */
	public List<Project> searchProjects(long uid, String keyword, String startDate, String endDate);
	
	/**
	 * Returns a list of resource where it also contains the given keywords and the
	 * last update is between the start date and the end date.
	 */
	public List<Resource> searchResources(String keyword, String startDate, String endDate);
	
	/**
	 * Returns a list of resources that create by the user with the given id where
	 * it also contains the given keywords and the last update is between the start
	 * date and the end date.
	 * 
	 */
	public List<Resource> searchMyResources(long userId, String keyword, String startDate, String endDate);
	
	/**
	 * Returns a list of resources with the given type and the last update within between the start date
	 * and end date
	 */
	public List<Resource> searchResourceWithTypes(String type, String startDate, String endDate);
	
	/**
	 * Returns a list of resource type (extension, doc, txt, etc...)
	 * 
	 */
	public List<String> getResourceTypes();
	
}
